9.  objektorientierte programmierung

9.1  objekt vereinbaren

Obwohl in Javascript durchgehend mit objekten gearbeitet wird, ist im vergleich mit PHP oder modernen programmiersprachen die objektorientierte programmierung recht schlicht realisiert. Wie schon unter nr. 1.2 ausgeführt wurde, geht es bei den begriffen etwas durcheinander: es gibt keine klasse, mit der üblicherweise die eigenschaften und methoden eines objekts definiert oder beschrieben werden, es gibt nur eine funktion, mit der eigenschaften und ggf. methoden vereinbart werden und die auch dazu dient, objekte, also instanzen mit dem von der funktion definierten typ zu erzeugen. Oft wird die funktion auch als konstruktor-funktion bezeichnet

konstruktor-funktion

function klasse ([ param [ = default ] , . . . ] )
{
    this.eigenschaft = param | wert;    einer eigenschaft einen wert zuweisen
    this.methode = methfunk;         eine methode vereinbaren
    [ return erg; ]
}

klassename der funktion; es gibt bei Javascript keine klasse, aber man tut sich leichter, wenn man so tut als ob und den funktionsnamen wie eine klassebezeichnung betrachtet.
paramvereinbarung eines parameters, für den beim aufruf ein wert übergeben wird
defaultwert, wenn für den parameter nichts übergeben wird
eigenschafteigenschaft des objekts; man kann einen parameter, eine in der funktion vereinbarte variable oder direkt einen wert zuweisen. Oft wird einfach 0 zugewiesen. Man kann beliebig viele eigenschaften vereinbaren. Eine eigenschaft entspricht dem, was man sonst als variable bezeichnet.
methodename einer methode; man kann keine oder beliebig viele methoden vereinbaren
methfunkname einer funktion methoden-funktion), die der methode zugewiesen wird; die funktion wird ohne () angegeben. Man erleichtert sich den umgang mit den methoden des objekts, wenn man für die methode und die methoden-funktion die gleiche bezeichnung wählt.
ergrückgabewert der funktion; in einem konstruktor eher unüblich

methode
Für eine methode ist eine funktion notwendig; die funktion kann beliebige anweisungen enthalten, wichtig sind anweisungen, mit denen eigenschaften des objekts gelesen oder geschrieben werden.

function methfunk ( [ param [ = default ] , . . . ] )
{
    var wert = this. eigenschaft;
    this.eigenschaft = irgendetwas;
    var ferg = this.mname ( [ wert, … ] );
}

methfunkname der funktion, der in der konstruktor- funktion vereinbart wurde, also nicht der vereinbarte name der methode. Man erleichtert sich das leben, wenn man für beides den gleichen namen verwendet.
eigenschafteigenschaft (variable), die in der konstruktor-funktion vereinbart wurde
mnameaufruf einer methode, die in der konstruktor- funktion vereinbart wurde; es ist der name der methode, nicht der name der methoden-funktion anzugeben.

objekt erzeugen
Durch den aufruf der konstruktor-funktion wird eine instanz, d.h. ein objekt mit den in dieser funktion definierten eigenschaften und methoden erzeugt. Man kann beliebig viele instanzen anlegen.

var instanz new klasse( [ param , . . . ] );

instanzname der instanz bzw. des objekts
klassename der konstruktor-funktion.
paramparameter, für den beim anlegen der instanz werte übergeben werden.

verwendung einer methode
Eine methode kann wie jede andere funktion verwendet werden, allerdings kann man eine methode immer nur für eine vorhandene instanz des objekts aufrufen.

[ erg ] = instanz.methode( [ par, . . . ] );

achtung
Eine methode wird mit dem namen der methode und nicht mit dem namen der methoden-funktion aufgerufen. Das ist der grund, weshalb man für beides die gleiche bezeichnung wählen sollte.

zugriff zu eigenschaften
Die eigenschaften eines objekts sind global, daher kann man darauf überall zugreifen, aber nur auf dem weg über eine vorhandene instanz.

var wert = instanz.eigenschaft; lesen einer eigenschaft
instanz.eigenschaft = irgendetwas; schreiben einer eigenschaft

beispiel 9a
objekt-typ vereinbaren

Es wird die konstruktor-funktion PERS mit einigen eigenschaften und den beiden methoden EIN und AUS vereinbart. Für den konstruktor PERS sind zwei parameter vorgesehen, es müssen daher zwei argumente übergeben werden, es können aber auch mehr sein, weil im konstruktor die zahl der übergebenen werte geprüft und dann entsprechend verfahren wird

methoden
Die methode EIN (funktionsname eingabe) erwartet zwei argumente, die in eigenschafen des objekts geschrieben werden. Die methode AUS (funktionsname AUS) zeigt eigenschaften des objekts an.

Es werden drei instanzen von PERS erzeugt, deren eigenschaften dann mit der methode EIN mit werten versorgt und dann mit der methode AUS angezeigt werden. Zuletzt wird die eigenschaft name der instanz fall3 geändert und die eigenschaften der instanz erneut angezeigt. Die änderung erfolgt nicht mit hilfe einer methode, sondern durch einen direkten zugriff auf die eigenschaft.


zum untermenü


    IMPRESSUM  

    KONTAKT  

    PRIVAT  

    D O K U  


  H T M L  
  C S S  
  P H P  
  My S Q L  
  javascript